package edu.cuit.avatar.method;

/**
 * 修饰符 返回值类型 方法名(参数列表){
 *     方法体
 * }
 *
 * 参数列表
 * 参数类型 参数名, 参数类型 参数名,...
 */
public class MethodDemo {
    public static void main(String[] args) {
        System.out.println("sum from 1 to 20 is " + sum(1, 20));

        System.out.println("sum from 20 to 200 is " + sum(20, 200));

        System.out.println("sum from 50 to 150 is " + sum(50, 150));

        //对方法的调用作为一个值处理
        int max = max(10, -200);
        System.out.println("max = " + max);
        System.out.println("max = " + max(200, 100));

        float score = 98;
        printGrade(score);
        printGrade(-100);

        nPrintln("Hello World",3);
    }

    /**
     * 计算累加和
     * @param begin 起始数
     * @param end 结尾数
     * @return 和
     */
    public static int sum(int begin, int end){
        int sum = 0;
        for (int i = begin; i <= end; i++) {
            sum += i;
        }
        return sum;
    }

    /**
     * 返回两个整数中的最大值
     * @param num1 整数1
     * @param num2 整数2
     * @return max
     */
    public static int max(int num1, int num2){
        return num1 > num2 ? num1 : num2;
    }

    /**
     * 定义无返回值的方法
     * 根据成绩打印成绩的等级
     */
    public static void printGrade(float score){
        if(score < 0){
            System.out.println("成绩非法");
            return; //终止方法并返回到方法的调用者
        }
        if(score >= 90)
            System.out.println("A");
        else if(score >= 80)
            System.out.println("B");
        else if(score >= 70)
            System.out.println("C");
        else
            System.out.println("D");
    }

    public static void nPrintln(String message, int times){
        for(int i = 0; i < times; i++)
            System.out.println(message);
    }
}
